package com.itheima2;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;

public class Locker2 {
    private final int GRID = 20;//容量
    private HashMap<String , String>map;
    //存取货物的集合，取货码做键，物品做值
    public Locker2(){
        map=new HashMap<>();
        //创建储存柜对象，实际上是创建了一个map集合
    }
    //存物品的方法：参数列表：物品名称
    //返回值：是否存储成功
    public boolean add (String name) {
        if (map.size() >= GRID) {
            System.out.println("柜子已经满了");
            return false;
        }
        while (true) {
            String str = getRandomStr();
            //如果取货码不重复，就存入
            if (!map.containsKey(str)) {
                map.put(str,name);
                System.out.println("存货成功,取货码为： "+str);
                break;
            }
        }
        return true;
    }
    //获取一个四位数随机取货吗的方法
    private String getRandomStr(){
        //把字符都放进集合中，然后随机抽取
        ArrayList<Character> list =new ArrayList<>();
        for(char a='0';a<='9';a++){
            list.add(a);
        }
        //获取随机数
        Random r =new Random();
        //创建一个新的字符串，里面没有内容
        String s= "";
        //利用循环获取一个四位数的随机数
        for (int i = 0; i < 4; i++) {
            s+=list.get(r.nextInt(list.size())).toString();
    }
        return s;

    }
    //取货的方法:参数列表 取货码
    public void remove(String num ){
        //判断有没有这个取货码
        if(!map.containsKey(num)){
            System.out.println("没有该取货码，请检查");
            return;
        }
        //取货码有,移除该取货码
        String s = map.remove(num);
        System.out.println("取货成功");
    }
}
